import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;

/**
 * 面板容器的核心思想：中间容器
 * JPanel：无滚动条，可以存放多个组件
 * JScrollPanel：有滚动条，只能存放一个组件
 */
public class DemoPanel1 {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(DemoPanel1::creatAndShowGUI);
    }

    private static void creatAndShowGUI() {
        Border Line = BorderFactory.createLineBorder(Color.CYAN);
        JFrame jf = new JFrame("窗口标题");
        jf.setLayout(null);
        jf.setBounds(800, 100, 400, 700);
        // 创建JScrollPanel带有滚动条的面板
        JScrollPane jScrollPane = new JScrollPane();
        jScrollPane.setBounds(100,200,200,200);
        //jScrollPane.setPreferredSize(new Dimension(200,200));
        jScrollPane.setBorder(Line);
        // 设置滚动条的水平滚动策略，水平超过时，显示滚动条
        jScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        // 设置滚动条的垂直滚动策略，一直显示垂直滚动条
        // 创建无滚动条的jPanel面板
        JPanel jPanel = new JPanel();
        DominoManager.Instance.Init();
        for (int i = 1; i <= 10; i++) {
            jPanel.add(DominoManager.Instance.GetADomino());
        }
        // 将Jpanel添加到JScrollPane中
        jScrollPane.setViewportView(jPanel);
        // 将JScrollPane添加到JFrame窗口对象中
        // jf.add(jScrollPane, BorderLayout.CENTER);
        jf.add(jScrollPane);

        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }
}
